package DAO;

import Codigo.Suspeitos;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class SuspeitoDAO {
    public boolean Cadastrar(Suspeitos obj)
    {
        Boolean retorno = false;
        String sql = "INSERT INTO suspeito (nome, ocupacao, esporte, cabelo, carro, tracos, outros,imagem)" 
                + "VALUES(?,?,?,?,?,?,?,?)";
        PreparedStatement psm = Conexao.getPreparedStatement(sql);
                    try {
                        psm.setString(1, obj.getNomesuspeito());
                        psm.setString(2, obj.getOcupacao());
                        psm.setString(3, obj.getEsporte());
                        psm.setString(4, obj.getCabelo());
                        psm.setString(5, obj.getCarro());
                        psm.setString(6, obj.getTracos());
                        psm.setString(7, obj.getOutros());
                        psm.setBytes(8, obj.getImagem());
                        //Executar o insert
                        Integer resultado = psm.executeUpdate();
                        if (resultado > 0) {
                            retorno = true;
                        } else {
                            retorno = false;
                        }
                    } catch (SQLException ex) {
                        System.out.println("Erro ao acessar o banco"+ ex.getMessage());
                        return false;
                    }
        return retorno;
    }
     public List<Suspeitos> Listar()
    {
    List<Suspeitos> lista = new ArrayList<Suspeitos>();
        String sql = "SELECT * FROM suspeito";
        PreparedStatement psm = Conexao.getPreparedStatement(sql);
                    try {
                        ResultSet resultado = psm.executeQuery();
                        
                        while(resultado.next())
                        {
                            Suspeitos obj = new Suspeitos();
                            obj.setSuspeitoid(resultado.getInt("suspeitoid"));
                            obj.setNomesuspeito(resultado.getString("nome"));
                            obj.setOcupacao(resultado.getString("ocupacao"));
                            obj.setEsporte(resultado.getString("esporte"));
                            obj.setCabelo(resultado.getString("cabelo"));
                            obj.setCarro(resultado.getString("carro"));
                            obj.setTracos(resultado.getString("tracos"));
                            obj.setOutros(resultado.getString("outros"));
                            obj.setImagem(resultado.getBytes("imagem"));
                            //adiciona na lista
                            lista.add(obj);
                        }
                    } catch (SQLException ex) {
                        lista = null;
                     
                    }
        return lista;
    }
     
      public Boolean Excluir(Suspeitos obj)
    {
        Boolean retorno = false;
        //MONTA A STRING DE EXCLUSÃO A PARTIR DA CHAME PRIMÁRIA
        String sql = "DELETE FROM suspeito WHERE suspeitoid=?";
        PreparedStatement psm = Conexao.getPreparedStatement(sql);
        try{
            psm.setInt(1, obj.getSuspeitoid());
            Integer resultado = psm.executeUpdate();
            if(resultado>0)
            {
                retorno = true;
            }
            else
            {
                retorno = false;
            }
        }
        catch (SQLException ex){
            System.out.println("BD: "+ ex.getMessage());
            }
        return retorno;
    }
      public Suspeitos Consultar(Suspeitos obj2) {

        String sql = "SELECT * FROM suspeito WHERE nome = ?";
        Suspeitos obj = null;
        PreparedStatement psm = Conexao.getPreparedStatement(sql);

        try {
            psm.setString(1, obj2.getNomesuspeito());
            ResultSet resultado = psm.executeQuery();

            if (resultado.next()) {
                obj = new Suspeitos();
                obj.setSuspeitoid(resultado.getInt("suspeitoid"));
                obj.setNomesuspeito(resultado.getString("nomesuspeito"));
                obj.setSexo(resultado.getString("sexo"));
                obj.setOcupacao(resultado.getString("ocupação"));
                obj.setEsporte(resultado.getString("esporte"));
                obj.setCabelo(resultado.getString("cabelo"));
                obj.setCarro(resultado.getString("carro"));
                obj.setTracos(resultado.getString("traços"));
                obj.setOutros(resultado.getString("outros"));
                

            }

        } catch (SQLException ex) {
            System.out.println("Erro ao acessar o banco: " + ex.getMessage().toString());

        }

        return obj;
    }
       public Suspeitos ListarSuspeito()
    {
    Suspeitos obj = new Suspeitos();
        String sql = "SELECT * FROM suspeito ORDER BY RANDOM() LIMIT 1";
        PreparedStatement psm = Conexao.getPreparedStatement(sql);
                    try {
                        ResultSet resultado = psm.executeQuery();
                        
                        if(resultado.next())
                        {
                           
                            obj.setSuspeitoid(resultado.getInt("suspeitoid"));
                            obj.setNomesuspeito(resultado.getString("nome"));
                            obj.setSexo(resultado.getString("sexo"));
                            obj.setOcupacao(resultado.getString("ocupacao"));
                            obj.setEsporte(resultado.getString("esporte"));
                            obj.setCabelo(resultado.getString("cabelo"));
                            obj.setCarro(resultado.getString("carro"));
                            obj.setTracos(resultado.getString("tracos"));
                            obj.setOutros(resultado.getString("outros"));
                            obj.setImagem(resultado.getBytes("imagem"));
                            
                        }
                    } catch (SQLException ex) {
                        obj = null;
                     
                    }
        return obj;
    }
}
